package bbalgae.swing.outline;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JScrollBar;
import javax.swing.JTextPane;
import javax.swing.JScrollPane;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
/**
 * 스윙기본컴포넌트(텍스트 입력)
 * JComponent 클래스에서 상속받은 클래스
 * 문자 '가',문자열 "가나다라",텍스트"가나다라...마바사....가나다라.. 다음줄까지"
 * JTextField : 한 줄 문자열을 입력
 * JPasswordField : 입력받은 문자를 *로 치환해서 출력
 * setEchoChar : ●이렇게 나오던 비밀번호를 *로 변경
 * 
 * setColumns : 크기 조절
 * setToolTipText : 툴팁이 나오게 하는것
 * setFont : 텍스트 변경
 * setEditable : 수정이나 삭제는 불가능하지만 드래그는 가능
 * setEnabled : 텍스트필드에 모든 기능을 죽임
 * JTextArea : 여러 줄의 문자열을 입력받음
 * 					  단어에 따라 줄바꿈 가능 스크롤 기능을 추가하라면 JScrollPane을 이용
 * setRows : 행의 줄수
 *	setLineWrap : 줄바꿈기능
 */

public class J18_BasicComponentFrame extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JPasswordField passwordField;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					J18_BasicComponentFrame frame = new J18_BasicComponentFrame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public J18_BasicComponentFrame() {
		setTitle("기본컴포넌트 - 텍스트입력");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JPanel panel = new JPanel();
		contentPane.add(panel, BorderLayout.NORTH);
		
		textField = new JTextField();
		textField.setText("이글이보임?");
		textField.setMargin(new Insets(5, 5, 5, 5));
		textField.setFont(new Font("맑은 고딕", Font.PLAIN, 12));
		textField.setToolTipText("아이디를 입력하세요.");
		panel.add(textField);
		textField.setColumns(10);
		
		textField_1 = new JTextField();
		textField_1.setMargin(new Insets(2, 2, 5, 5));
		textField_1.setFont(new Font("맑은 고딕", Font.PLAIN, 12));
		textField_1.setToolTipText("제목을 입력하세요");
		panel.add(textField_1);
		textField_1.setColumns(15);
		
		JPanel panel_1 = new JPanel();
		contentPane.add(panel_1, BorderLayout.WEST);
		
		JPanel panel_3 = new JPanel();
		contentPane.add(panel_3, BorderLayout.EAST);
		
		JPanel panel_4 = new JPanel();
		contentPane.add(panel_4, BorderLayout.SOUTH);
		
		passwordField = new JPasswordField();
		passwordField.setToolTipText("비밀번호를 입력하세요.");
		passwordField.setEchoChar('*');
		passwordField.setColumns(15);
		panel_4.add(passwordField);
		
		JPanel panel_2 = new JPanel();
		contentPane.add(panel_2, BorderLayout.CENTER);
		
		JScrollPane scrollPane = new JScrollPane();	//JTextArea에 스크롤 기능을 추가하기 위해 JScrollPane을 생성
		scrollPane.setPreferredSize(new Dimension(350, 150));//JScrollPane의 크기 지정
		panel_2.add(scrollPane);
		
		JTextArea textArea = new JTextArea();
		scrollPane.setViewportView(textArea);//JScrollPane의 헤더영역이 아닌 뷰포트영역에 JTextArea을 추가함.
		
		
	}

}
